package com.cqgcxy.shopping.common;

import java.io.Serializable;
/**
 * 分页查询数据用到的额外参数。主要包含
 * 1.每页记录数
 * 2.当前页号(从1开始)
 * 3.总的记录数
 * @author 方昆
 *
 */
public class Pager implements Serializable {

	private static final long serialVersionUID = 4535549022740161096L;
	/**
	 * 默认构造函数，每页5条记录，当前页1
	 */
	public Pager() {
		this.pageSize=5;
		this.currentPage=1;
	}
	/**
	 * 用总记录数构造对象
	 * @param totalSize
	 */
	public Pager(Integer totalSize) {
		this.totalSize=totalSize;
	}
	/**
	 * 用总记录数、每页大小，当前页构造对象
	 * @param totalSize
	 * @param pageSize
	 * @param currentPage
	 */
	public Pager(Integer totalSize,Integer pageSize,Integer currentPage) {
		this.totalSize=totalSize;
		this.pageSize=pageSize;
		this.currentPage=currentPage;
	}
	/**
	 * 定义每一页显示多少条记录
	 */
	private Integer pageSize=5;
	/**
	 * 当前是哪一页
	 */
	private Integer currentPage=1;
	/**
	 * 总共的记录数
	 */
	private Integer totalSize=0;
	
	/**
	 * 查询记录的偏移位置
	 * @return
	 */
	public Integer getOffset() {
		return (getCurrentPage()-1)*getPageSize();
	}
	/**
	 * 总的页数
	 * @return
	 */
	public Integer getTotalPage() {
		if(totalSize%pageSize==0) {
			return totalSize/pageSize;
		}else {
			return totalSize/pageSize+1;
		}
	}
	/**
	 * 得到前一页
	 * @return
	 */
	public Integer getPrevPage() {
		if(getCurrentPage()>1) {
			return getCurrentPage()-1;
		}else {
			return 1;
		}
	}
	/**
	 * 得到后一页
	 * @return
	 */
	public Integer getNextPage() {
		if(getCurrentPage()>1&&getCurrentPage()<getTotalPage()) {
			return getCurrentPage()+1;
		}else {
			return getTotalPage();
		}
	}
	/**
	 * 获取每页记录数
	 * @return
	 */
	public Integer getPageSize() {
		return pageSize;
	}
	/**
	 * 设置每页记录数
	 * @param pageSize
	 */
	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}
	/**
	 * 获取当前页，从1开始。最小为1
	 * @return
	 */
	public Integer getCurrentPage() {
		return currentPage<1?1:currentPage;
	}
	/**
	 * 设置当前页，从1开始。最小为1
	 * @param currentPage
	 */
	public void setCurrentPage(Integer currentPage) {
		this.currentPage = currentPage;
	}
	/**
	 * 获取总记录数
	 * @return
	 */
	public Integer getTotalSize() {
		return totalSize;
	}
	/**
	 * 设置总记录数
	 * @param totalSize
	 */
	public void setTotalSize(Integer totalSize) {
		this.totalSize = totalSize;
	}
	
}
